Model Validation হল ASP.NET Core অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ব্যবহারকারীর ইনপুট যাচাই করতে সাহায্য করে। ASP.NET Core ডেটা অ্যানোটেশন (Data Annotations) ব্যবহার করে সহজে Model Validation পরিচালনা করতে সক্ষম। ডেটা অ্যানোটেশন হল সেই এট্রিবিউট যা আপনি আপনার Model ক্লাসের প্রপার্টির উপর প্রয়োগ করেন এবং এটি ইনপুট যাচাই করার জন্য ব্যবহৃত হয়, যেমন ফিল্ডের ধরন, ফিল্ডের জন্য প্রয়োজনীয়তা, ম্যাক্সিমাম এবং মিনিমাম মান ইত্যাদি।
ডেটা অ্যানোটেশন ব্যবহারের মাধ্যমে আপনি বিভিন্ন ধরনের ভ্যালিডেশন চেক করতে পারেন, যেমন:
ধরা যাক, আমরা একটি Person
মডেল তৈরি করছি, যার মধ্যে নাম, বয়স এবং ইমেল অ্যাড্রেস চেক করা হবে। এখানে ডেটা অ্যানোটেশন ব্যবহার করা হয়েছে।
using System.ComponentModel.DataAnnotations;
public class Person
{
[Required(ErrorMessage = "নাম অবশ্যই প্রদান করতে হবে")]
[StringLength(100, ErrorMessage = "নামটি ১০০ অক্ষরের মধ্যে হতে হবে")]
public string Name { get; set; }
[Range(18, 100, ErrorMessage = "বয়স ১৮ থেকে ১০০ এর মধ্যে হতে হবে")]
public int Age { get; set; }
[Required(ErrorMessage = "ইমেল ঠিকানা প্রদান করতে হবে")]
[EmailAddress(ErrorMessage = "একটি বৈধ ইমেল ঠিকানা প্রদান করুন")]
public string Email { get; set; }
}
এখানে:
Required
: ফিল্ডটি পূর্ণ করতে হবে।StringLength
: একটি স্ট্রিং-এর দৈর্ঘ্য সীমাবদ্ধ করা (এখানে ১০০ অক্ষরের মধ্যে থাকতে হবে)।Range
: বয়সের জন্য ১৮ থেকে ১০০ এর মধ্যে হতে হবে।EmailAddress
: একটি বৈধ ইমেল ঠিকানা যাচাই করা।using Microsoft.AspNetCore.Mvc;
public class PersonController : Controller
{
[HttpPost]
public IActionResult Create(Person person)
{
// Model Validation চেক করা
if (ModelState.IsValid)
{
// যদি Model Valid হয়, ডেটা প্রক্রিয়া করুন (ডেটাবেসে সেভ করুন)
return RedirectToAction("Index");
}
// যদি Model Invalid হয়, ফর্মটি আবার ভ্যালিডেশনসহ রেন্ডার করুন
return View(person);
}
}
এখানে, ModelState.IsValid ব্যবহার করে মডেলটি যাচাই করা হয়। যদি মডেলটি ভ্যালিড হয়, তাহলে রিডাইরেক্ট করা হবে, অন্যথায় View-এ Error বার্তা দেখানো হবে।
@model Person
<form asp-action="Create" method="post">
<div>
<label for="Name">নাম</label>
<input type="text" id="Name" name="Name" value="@Model.Name" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div>
<label for="Age">বয়স</label>
<input type="number" id="Age" name="Age" value="@Model.Age" />
<span asp-validation-for="Age" class="text-danger"></span>
</div>
<div>
<label for="Email">ইমেল</label>
<input type="email" id="Email" name="Email" value="@Model.Email" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<button type="submit">সাবমিট</button>
</form>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
এখানে:
asp-validation-for="Name"
, asp-validation-for="Age"
, এবং asp-validation-for="Email"
ব্যবহার করে আমরা সংশ্লিষ্ট ফিল্ডের জন্য Validation Error দেখাতে পারি।ASP.NET Core ডেটা অ্যানোটেশন দ্বারা Custom Validation তৈরি করা যায়, যা কিছু নির্দিষ্ট লজিক অনুসারে ইনপুট যাচাই করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আমরা একটি কাস্টম ভ্যালিডেশন তৈরি করব যা একজন ব্যক্তির বয়স ১৮ বছরের কম হলে অনুমোদন করবে না।
public class AgeValidation : ValidationAttribute
{
public override bool IsValid(object value)
{
var age = (int)value;
return age >= 18;
}
}
public class Person
{
[Required(ErrorMessage = "নাম অবশ্যই প্রদান করতে হবে")]
public string Name { get; set; }
[AgeValidation(ErrorMessage = "বয়স ১৮ বছরের কম হতে পারবে না")]
public int Age { get; set; }
[Required(ErrorMessage = "ইমেল ঠিকানা প্রদান করতে হবে")]
[EmailAddress(ErrorMessage = "একটি বৈধ ইমেল ঠিকানা প্রদান করুন")]
public string Email { get; set; }
}
এখানে, AgeValidation
কাস্টম অ্যাট্রিবিউট ব্যবহার করা হয়েছে, যা বয়স ১৮ বছরের কম হলে ভুল দেখাবে।
ASP.NET Core-এ ডেটা অ্যানোটেশন ব্যবহার করে মডেল ভ্যালিডেশন একটি শক্তিশালী পদ্ধতি যা ইনপুট যাচাই করার জন্য খুবই কার্যকর। ডেটা অ্যানোটেশন সন্নিবেশ করার মাধ্যমে আপনি সহজেই বিভিন্ন ধরনের ভ্যালিডেশন চেক (যেমন Required, StringLength, Range, ইত্যাদি) করতে পারেন। এছাড়া, আপনি কাস্টম ভ্যালিডেশন তৈরি করে নিজের শর্তানুযায়ী ইনপুট যাচাই করতে পারেন, যা অ্যাপ্লিকেশনের নিরাপত্তা এবং পারফরম্যান্সের জন্য অত্যন্ত গুরুত্বপূর্ণ।
common.read_more